Networks that primarily utilize data link layer devices are often referred to as layer two (L2) networks. A data link layer device is a device that operates within the second layer of the Open Systems Interconnection (OSI) reference model, i.e., the data link layer. One example of a data link layer device is a customer premises equipment (CPE) device, such as a switch, modem, Ethernet card, or wireless access point. Traditional L2 networks include Ethernet networks, Asynchronous Transfer Mode (ATM) networks, Frame Relay networks, networks using High Level Data Link Control (HDLC), Point-to-Point (PPP) connections, PPP sessions from Layer 2 Tunneling Protocol (L2TP) tunnels, and Virtual Local Area Networks (VLANs).
In some instances, a layer three (L3) network is used as an intermediate transport network between two or more L2 networks in order to allow communication between the L2 networks. In this type of configuration, the L3 network transparently transports L2 communication between the L2 networks, thereby allowing the L2 networks to share an L2 service. Common protocols for transporting the L2 service through the intermediate L3 network are label switching protocols, such as Multi-protocol Label Switching (MPLS) protocols like Resource Reservation Protocol (RSVP) and the Label Distribution Protocol (LDP). In accordance with MPLS, a source device, such as a router connected to one of the L2 networks, can request a path through the intermediate network. This path, referred to as a Label Switched Path (LSP), defines one or more distinct, dedicated, and guaranteed paths through the network to carry MPLS packets from the source to the destination. The MPLS packets encapsulate the L2 communications, thereby effectively shielding the L3 network from the transported L2 information.
One example of an L2 service is the Virtual Private LAN Service (VPLS) that simulates a local area network. In general, VPLS allows two or more remote customer networks to be extended through the intermediate network as if the intermediate network does not exist. In particular, L2 communications, such as Ethernet packets, are transported between customer networks via the intermediate network. In a typical configuration, VPLS-enabled routers that are associated with the customer networks define LSPs within the intermediate network to carry encapsulated L2 communications as if these customer networks were directly attached to the same LAN. To properly communicate via these LSPs, each of these VPLS-enabled routers store L2 information, such as Media Access Control (MAC) addresses, as well as VPLS information, such as local and remote VPLS site information. In this manner, these VPLS-enabled routers provide transparent L2 connectivity across the intermediate network and simulate a direct LAN.
In L2 networks, an L2 device responsible for forwarding network traffic, such as an L2 switch or an VPLS-enabled router, operates to “flood” (i.e., forward a copy) network traffic to a set of output ports of the device in a situation where the network traffic is destined for a network address that has not previously been seen, and therefore not learned, by the device. In this manner the L2 device can ensure that at least the destination receives the network traffic regardless of the destination's location within the L2 network. The L2 device continues to flood to the set of output ports all subsequent network traffic bound for the destination address until the L2 device receives some network traffic originated from the address, at which time the L2 device is able to “learn” the specific port by which the L2 address is reachable. As a result, the L2 device forwards future network traffic bound for the address to the particular output port and no longer needs to flood the network traffic.
In this way, L2 network devices rely on network traffic flooding to ensure that L2 traffic reach their destinations. However, the use of network flooding requires that the L2 devices operate to reduce or eliminate any “data loops” in the L2 network, i.e., situations where network traffic is flooded in a manner that results in the flooding device subsequently receiving the same traffic it flooded. The presence of such a data loop may have severe adverse affects on a L2 network. For example, a data loop may result in consumption of significant bandwidth and resources as the flooded traffic within the data loop is continuously flooded by the devices. Moreover, a data loop may also result in the final destination receiving multiple copies of the same packet.
Thus, it is often necessary to eliminate data loops from the L2 network topology. As a result, many L2 switches or VPLS-enabled routers often attempt to operate in accordance with a rule known as the “split-horizon rule” to avoid data loops. The split-horizon rule prohibits a router flooding a copy of an L2 packet back out an interface from which the original L2 packet was received.